#ifndef ENTITY_TOP_PROPERTY_H_H_H_
#define ENTITY_TOP_PROPERTY_H_H_H_

#include "EntityProperty.h"
#include <vector>
class EntityTopProperty  : public EntityProperty
{
public:
	EntityTopProperty(const char* name);
	~EntityTopProperty(void);
public:

    virtual void addEntityProperty();
	virtual void onChange();

	virtual bool hasChild(){ return (_matList.size()? 1:0);}

	void setProperty();

	virtual void addProperty(EntityProperty* pro);


private:
 
	std::vector<EntityProperty*> _matList;

};

class TopPropertyManager
{
public:
	TopPropertyManager();
	~TopPropertyManager();
public:
	static TopPropertyManager* Instance();
	static TopPropertyManager* _instance;

	void addProperty(EntityProperty* pro);
	void remvoeProperty(EntityProperty* pro);

	int getPropertyCount(){return TopList.size();}

    void setProperty();

   

private:

    std::vector<EntityTopProperty*> TopList;
};
#endif